TL/UCP: add exact mixed-radix allgather schedules - #1327
Conversation
2dab095 to
828683a
Compare
367c6f9 to
828683a
Compare
|
Maintainer note on the I intentionally reduced this file to the functional seven-line The minimal diff may therefore make the codestyle check fail. Could maintainers |
da58ec5 to
d737a5a
Compare
Add explicit per-phase radix schedules to TL/UCP K-nomial AllGather while preserving the fixed-radix and AllGatherV paths. Parse and validate exact schedules through the existing team configuration.
Cover schedule parsing, legacy fixed-radix behavior, and exact mixed-radix peer and segment layouts.
d737a5a to
94d3bd9
Compare
|
| Filename | Overview |
|---|---|
| src/components/tl/ucp/allgather/allgather_knomial.c | Selects and validates message-range radix schedules and initializes mixed-radix AllGather tasks; no follow-up-eligible issue was identified. |
| src/coll_patterns/sra_knomial.h | Initializes exact mixed-radix AllGather patterns while preserving the legacy single-radix path. |
| src/coll_patterns/recursive_knomial.h | Advances the active radix between mixed-schedule phases. |
| src/utils/ucc_parser.c | Adds parsing, printing, cloning, and release support for ranged radix schedules. |
| src/utils/ucc_datastruct.c | Adds deep-copy and destruction support for radix-schedule range entries. |
| test/gtest/coll/test_knomial_schedule.cc | Covers legacy fixed-radix behavior and exact mixed-radix peer and segment layouts. |
| test/gtest/utils/test_parser.cc | Covers valid, invalid, ranged, formatted, overlong, and cloned schedule configurations. |
Reviews (4): Last reviewed commit: "TL/UCP: address follow-up mixed-radix re..." | Re-trigger Greptile
|
/build |
| UCC_CONFIG_TYPE_UINT_RANGED}, | ||
|
|
||
| {"ALLGATHER_KN_MIXED_RADICES", "", | ||
| "Optional exact mixed-radix schedule for knomial allgather, for example " |
There was a problem hiding this comment.
i would maybe change semantic here, instead of exact decompostion consider it as allowed factors in decomposition so it generalises to any team size in a run.
There was a problem hiding this comment.
don't we want the option for the user to provide the exact order ? (between 8x6 and 6x8 for example) I'm thinking that maybe the user would for example want to start with the first radix being the number of ranks in one node.
In the second PR, I provide an auto tuner that selects the radices and the order anyways but if the user chooses to select, I was thinking we ggive him "full control"
|
🤖 CI Triage Agent — TL;DR: The Full analysisSummary: clang-tidy failed with 1 warning-treated-as-error: "Value stored to 'radix' is never read" in Root cause: In Implicated commit: d17161b — "TL/UCP: address mixed-radix review" by jeffnvidia (the exact commit under test); the mixed-radix pattern work in ec51644 is the origin of the pattern-init reshuffle. File: src/components/tl/ucp/allgather/allgather_knomial.c:250 Suggested fix: Delete the dead assignment Related: PR #1327 (this change); prior mixed-radix PRs touching this file (#1176, #1072). No existing issue found for this specific warning. |
|
🤖 CI Triage Agent — TL;DR: The Full analysisSummary: clang-tidy Root cause: In Implicated commit: File: Suggested fix: Remove the now-unused Related: PR #1327 (this PR, |
|
🤖 CI Triage Agent — TL;DR: The Full analysisSummary: clang-tidy-17 static analysis failed with 1 warning treated as error: dead store to Root cause: In Implicated commit: d17161b — jeffnvidia, "TL/UCP: address mixed-radix review" (HEAD of PR #1327; the dead-store pattern originates in the mixed-radix series starting ec51644). File: src/components/tl/ucp/allgather/allgather_knomial.c:250 Suggested fix: Delete the dead assignment on line 250 ( Related: PR #1327 (jmahou/ucc-mixed-radix-clean); prior mixed-radix commit ec51644. |
What
Add exact per-phase radix schedules to TL/UCP K-nomial AllGather. A schedule
such as
8x6uses radix 8 in the first phase and radix 6 in the second; itsproduct must equal the team size.
Set an explicit schedule with, for example:
The same option accepts a fixed radix or
auto. The existing fixed-radix pathand AllGatherV behavior remain unchanged. Invalid schedules are rejected, and
existing algorithm tuning still decides whether K-nomial AllGather is selected.
Why
For non-power team sizes, a fixed radix can produce a truncated final phase or
proxy/extra ranks. An exact mixed schedule covers the complete team with an
explicit radix for every phase.
Across three tested environments at 96 ranks, a representative exact schedule
improved the large-message endpoint by 1.81x--1.99x over the best measured
fixed radix by avoiding the fixed-radix remainder path.
Performance evidence
Results are intentionally anonymized and normalized to the best measured
fixed-radix execution for each environment. Each row uses one exact schedule
at the endpoint; it is not a pointwise best-schedule envelope.
4x4x62x2x2x2x2x38x3x4These relative results demonstrate the remainder-path mechanism; they are not
intended as absolute system-performance comparisons.
Validation
8x2,2x8,and
4x4; all cases passed with zero failures.exact mixed peer sets, segment sizes, and offsets for every rank.
Automatic schedule selection is proposed separately in #1328.